--- 模块功能：日志生成器.
-- @author zhangFenghe
-- @module logGenerator.generateLog
-- @license MIT
-- @copyright zhangFenghe
-- @release 2022.04.29

module(..., package.seeall)
require "nvm"
require "io"
nvm.init("config.lua", true)
local LOG_DIR_PATH = "/log_dir"
--[[
    函数名：generateLogTask(logValue,logType)
    功能：根据日志类型及日志内容生成日志文件
    参数：日志内容，日志类型
    返回值：无                     ]]
function generateLogTask(logValue, logType)
    local clientNo, date, preFileName, fileName = nvm.get("info")[1],
        string.format("%04d-%02d-%02d", os.date("*t").year, os.date("*t").month, os.date("*t").day), "", ""
    preFileName = clientNo .. "-" .. date
    log.info("preFileName", preFileName)
    if rtos.make_dir(LOG_DIR_PATH) then
        if logType == "log" then
            fileName = LOG_DIR_PATH .. "/" .. preFileName .. ".log"
        elseif logType == "eqlog" then
            fileName = LOG_DIR_PATH .. "/" .. preFileName .. ".eqlog"
        elseif logType == "error" then
            fileName = LOG_DIR_PATH .. "/" .. preFileName .. ".error"
        end
        local filehandle = io.open(fileName, "a+") --第一个参数是文件名，后一个是打开模式'r'读模式,'w'写模式，对数据进行覆盖,'a'附加模式,'b'加在模式后面表示以二进制形式打开
        if filehandle then
            log.info("logvalue",logValue)
            filehandle:write(logValue) --写入要写入的内容
            filehandle:close()
        else
            print("文件不存在或文件输入格式不正确") --打开失败
        end
        --[[  log.info("fileName", fileName, "logValue", logValue)
        io.writeFile(fileName, logValue, "a")
        log.info("io.readFile", io.readFile(fileName)) ]]
    else
        print("创建目录失败")
    end
end

--[[
    函数名：readfile(filename)
    功能：打开所输入文件名的文件，并输出储存在里面额内容
    参数：文件名
    返回值：无                     ]]
function readfile(filename) --打开指定文件并输出内容

    local filehandle = io.open(filename, "r") --第一个参数是文件名，第二个是打开方式，'r'读模式,'w'写模式，对数据进行覆盖,'a'附加模式,'b'加在模式后面表示以二进制形式打开
    if filehandle then --判断文件是否存在
        local fileval = filehandle:read("*all") --读出文件内容
        if fileval then
            print(fileval) --如果文件存在，打印文件内容
            filehandle:close() --关闭文件
        else
            print("文件为空") --文件不存在
        end
    else
        print("文件不存在或文件输入格式不正确") --打开失败
    end

end

--[[
    函数名： writevala(filename,value)
    功能：向输入的文件中添加内容，内容附加在原文件内容之后
    参数：第一个文件名，第二个需要添加的内容
    返回值：无                         --]]
function writevala(filename, value) --在指定文件中添加内容,函数名最后一位就是打开的模式
    local filehandle = io.open(filename, "a+") --第一个参数是文件名，后一个是打开模式'r'读模式,'w'写模式，对数据进行覆盖,'a'附加模式,'b'加在模式后面表示以二进制形式打开
    log.info("filehandle", filehandle)
    if filehandle then

        filehandle:write(value) --写入要写入的内容
        filehandle:close()
    else
        print("文件不存在或文件输入格式不正确") --打开失败
    end
end

--[[
    函数名：writevalw(filename,value)
    功能：向输入文件中添加内容，新添加的内容会覆盖掉原文件中的内容
    参数：同上
    返回值：无                 --]]
--[[ function writevalw(filename, value) --在指定文件中添加内容
    local filehandle = io.open(filename, "w") --第一个参数是文件名，后一个是打开模式'r'读模式,'w'写模式，对数据进行覆盖,'a'附加模式,'b'加在模式后面表示以二进制形式打开
    if filehandle then
        filehandle:write(value) --写入要写入的内容
        filehandle:close()
    else
        print("文件不存在或文件输入格式不正确") --打开失败
    end
end ]]


--打印文件系统的剩余空间
print("get_fs_free_size: " .. rtos.get_fs_free_size() .. " Bytes")
